package 算法.十大排序算法;

import java.util.Arrays;

/**
 * @author coderFu
 * @create 2022/3/18
 * 插入排序：  注意点,找到插入的位置，以及前面数据的移动
 */
public class CoderInsertSort {

    public static void main(String[] args) {
        int[] arr = new int[]{4,5,34,54,6,5,765};
        System.out.println("排序之前："+ Arrays.toString(arr));
        int[] ints = insertSort(arr);
        System.out.println("排序之后："+ Arrays.toString(ints));
    }

    public static int[] insertSort(int[] arr){

        for(int i=1; i<arr.length; i++){
            // 判断是否需要插入
            if(arr[i-1]>arr[i]){
                // 保存要移动的数据
                int temp = arr[i];
                int j=i;
                while(j>0 && arr[j-1]>temp){
                    arr[j] = arr[j-1];
                    j--;
                }
                // 在合适的位置插入我们的数据
                arr[j] = temp;
            }
        }
        return arr;


    }
}
